package com.br.rh.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.br.rh.vo.EstadoCivil;
import com.br.rh.vo.Pessoal;
import com.br.rh.vo.RegistroPessoal;

public class PessoalDAO extends DataUtils {
	public List<Pessoal> getAll(){
		List<Pessoal> lista = new ArrayList<Pessoal>();
		try {
			Connection conn = getConnection();
			PreparedStatement stmt =  conn.prepareStatement("select p.codigo,p.nome,p.sobrenome,p.nascionalidade,p.local_nascimento,ec.estado_civil,rp.rg,rp.cpf,rp.uf,rp.date_nascimento from pessoal p,registro_pessoal rp,estado_civil ec  where p.fk_registro_pessoal = rp.codigo and rp.fk_estado_civil= ec.codigo;");
			ResultSet rs = stmt.executeQuery();
			Pessoal pessoal;
			RegistroPessoal registroPessoal;
			while(rs.next()){
				pessoal = new Pessoal();
				registroPessoal = new RegistroPessoal();
				
				pessoal.setCodigo(rs.getInt(1));
				pessoal.setNome(rs.getString(2));
				pessoal.setSobrenome(rs.getString(3));
				pessoal.setNascionalidade(rs.getString(4));
				pessoal.setLocalNascimento(rs.getString(5));
				registroPessoal.setEstadoCivil(new EstadoCivil(rs.getString(6)));
				registroPessoal.setRg(rs.getString(7));
				registroPessoal.setCpf(rs.getString(8));
				registroPessoal.setUf(rs.getString(9));
				registroPessoal.setDataNascimento(rs.getDate(10));
				pessoal.setRegistroPessoal(registroPessoal);
				lista.add(pessoal);
			}
			conn.close();
			stmt.close();
			rs.close();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return lista;
	}
}
